"""
Lambda函数是一种匿名函数 ，通常用于一些简单的，一次性的函数。这样可以便面顶一个完整的函数
Lambda的函数的特点： 简洁性  匿名性 功能性编程 节省内存

Lambda语法：
    lambda 参数列表:表达式
      参数列表：可以有多个或者零个，多个参数之间用逗号分隔
"""

#定义一个简单的 lambda函数，对传入的参数求平方
sq = lambda x: x * x  #不需要写return 会自动的返回
res = sq(5)
print(res)

st = lambda : "Hello Python"
print( st() )

"""
Lambda函数常用于简单的逻辑处理，同时也有高阶函数可以用使用Lambda的方式 map() filter() sort()
"""
num = [1,2,3,4,5,6] #利用map()求出每个元素的平方
res = list(  map( lambda x: x * x ,  num)  ) # x指的是num中的每一次元素，
print(res) #[1, 4, 9, 16, 25, 36]

#使用Lambda函数和filter函数 筛选出列表中的偶数
res = list( filter(  lambda x: x%2==0,  num )  ) # 无论map filter 第一个参数都是规则 ，第二个参数是要操作的内容
print(res)

#利用lambda函数定义一个自定义排序规则，对学生成绩进行排序

students=[
    {'name':"Json",'grade':90},
    {'name':"Tony",'grade':93},
    {'name':"Tom",'grade':78},
    {'name':"Bob",'grade':66},

         ]
sorted_student = sorted(students,key=lambda x:x['grade'],reverse=True)
print(sorted_student)